1. Field of the Invention
The present invention is generally directed to a graphics processing unit (GPU). More particularly, the present invention is directed to the use of a GPU with a virtual machine.
2. Background Art
Virtual machine technology allows users to run multiple operating systems simultaneously. Each operating system runs in a virtual machine which runs on the underlying physical hardware. Typically, the multiple virtual machines share an underlying physical display.
In most cases, computer users who run multiple virtual machines are interested in displaying each virtual machine simultaneously. In these cases, the computer users desire to run each virtual machine at an independent resolution and frame rate.
In order to display multiple virtual machines simultaneously at independent resolution and frame rates, a mechanism is needed to coordinate virtual machine access to the underlying physical display. Allowing multiple virtual machines to simultaneously access the underlying physical display would result in a corrupted display.
A current approach to providing coordinated access to the underlying physical display is implemented entirely by software using a brute force approach known as ‘software abstraction.’ Such coordination is provided by a virtual machine manager, also known as a hypervisor. A hypervisor vendor must present the virtual machine with a virtual GPU with its own display driver. The virtual machine display driver is instrumented, (e.g. an instrumented display driver) with hooks to communicate to the hypervisor to facilitate desktop composition and remote display of a virtual machine.
An instrumented driver is simpler than a full function driver because it merely funnels commands to the real driver. An instrumented driver, however, does not provide the complete functionality of the underlying GPU to the virtual machine. In addition, the instrumented driver incurs CPU overhead when it funnels commands to the real driver. In other words, an instrumented driver undermines the stated goal of virtualization technology: provide a complete illusion to the virtual machine software that it is running on the real physical hardware.